为什么没有人做 CTF 工具大全这种好东西?感觉入门要想成为脚本小子得知道能用哪些脚本吧... 不管怎么说,飞飞想整理一下这类东西,结构大概是分类 - 名称 - 介绍 & 用法示例
只是咱喜欢的工具哦,咱更喜欢用 Linux 呢,所以部分转译跑不了或者性能很低的咱就不列了,广为人知的工具像 BurpSuite 这种咱也不列了
写了一点发现原来随波逐流软件站给了一些工具,那咱就帮他整合一下
编解码#
随波逐流#
一键解码,下载地址: 官网
不过这个居然要联网检查更新,赛博洁癖犯了,哪天给他破解了
用 Bottles 使用 exe 体验也很糟糕,差评
XXencode#
在线一键解码工具,有些线下赛禁止联网,还是只能用随波逐流了 (呕)
点击访问
Crypto#
这个主要是数学问题吧,用到的都是一些 python 的库
gmpy2#
高精度高效率大数运算库
pip install gmpy2
PWN#
pwntools#
pip install pwntools
Web#
wabt#
用于将 Webassmbly 文件转换为 C 语言代码,然后放到 IDA 里分析
wasm2c webassembly.wasm -o web.c -o-h web.h
通过 wasm2c 导出的 C 语言代码本身并不包含可执行入口,同时会缺少运行时,wasm_rt_* 由 wabt 项目里的 wasm-rt-impl.c 提供;而 w2c_wasi__snapshot__preview1_fd_write、w2c_env_0x5Femscripten_memcpy_js 等名字是 wasm2c 为 WASI/Emscripten 导入生成的包装函数,需要自己实现或链接到现成的 “迷你 WASI” 实现。官方示例把这些实现放在一个 imports.c 里,只要返回 0 或调用真正的系统调用即可;否则仍会报 “unknown import”
// imports.c
#include <stddef.h>
#include <stdint.h>
#include "wasm-rt.h"
uint32_t w2c_wasi__snapshot__preview1_fd_write(void* unused, uint32_t fd,
uint32_t iovs, uint32_t iovs_len,
uint32_t nwritten) {
return 0;
}
void w2c_env_0x5Femscripten_memcpy_js(void* unused) {}
void w2c_env_emscripten_resize_heap(void* unused) {}
手写 main.c
可以通过编译
#include "web.h"
#include <stdio.h>
int main(void) {
/* 1) 初始化 wasm‑rt 全局运行时 */
wasm_rt_init();
/* 2) 实例化模块(不需要完整导入表就传 NULL) */
struct w2c_webassembly inst;
wasm2c_webassembly_instantiate(&inst, NULL, NULL);
/* 3) 运行所有全局构造函数(static ctors) */
w2c_webassembly_0x5F_wasm_call_ctors(&inst);
/* 4) 初始化 Emscripten 栈 */
w2c_webassembly_emscripten_stack_init(&inst);
/* 5) 调用导出 main(传 argc=0, argv_ptr=0) */
u32 rc = w2c_webassembly_main(&inst, 0, 0);
printf("wasm main returned %u\n", rc);
/* 6) 清理实例和运行时 */
wasm2c_webassembly_free(&inst);
wasm_rt_free();
return 0;
}
编译命令
gcc -O2 -I. -I/usr/include/wabt/wasm2c -DWASM_RT_MALLOC \
web.c imports.c main.c /usr/share/wabt/wasm2c/wasm-rt-impl.c \
-lm -o webdemo
数字取证#
Volatility#
内存取证工具
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
pip install -r requirements.txt
使用例#
envars
是 Volatility 的一个插件,用于提取和列出内存转储中的环境变量。环境变量包含了系统和用户配置的一些信息,比如路径、系统设置等。
.\volatility -f .\1.raw --profile=Win7SP1x64 envars | grep 'n0wayback'
pslist
是 Volatility 中的一个插件,用于列出内存中的所有进程。它通过分析内存中的进程链表,列出所有活动的进程信息,包括进程的 PID、进程名、父进程等。
.\volatility -f .\1.raw --profile=Win7SP1x64 pslist
0xfffffa8001a022a0 mspaint.exe 2052 1028 6 120 1 0 2024-03-04 05:50:22 UTC+0000
0xfffffa8003c68a80 cmd.exe 4188 1028 3 111 1 0 2024-03-04 05:50:26 UTC+0000
0xfffffa800418c060 Code.exe 888 1028 31 696 1 0 2024-03-04 05:52:52 UTC+0000
发现存在 mspaint.exe
进程,进行一个内存 dump
memdump
是 Volatility 中的一个插件,用于提取内存中的特定进程的内存映像。这个插件会根据指定的 PID 将进程的内存内容提取出来。
.\volatility -f .\1.raw --profile=Win7SP1x64 memdump -p 2052 -D ./
consoles
是 Volatility 中的一个插件,用于提取并列出与控制台相关的会话信息。控制台会话指的是命令行工具(如 cmd.exe 或 powershell.exe)的活动会话,Volatility 将列出它们的详细信息。
具体来说,consoles
插件会显示所有在内存中存在的控制台会话的相关数据,包括会话 ID、命令历史、运行的命令等信息。
.\volatility -f .\1.raw --profile=Win7SP1x64 consoles
杂项#
jwt.io#
可以在线编码解码 JWT Token 呢
SQL 注入#
ffifdyop#
md5(ffifdyop) = 'or'66�]��!r,��b
在 md5 后可以用此恒真万能口令注入